home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Development Platforms / Apple II / Essentials / MPW IIGS Interfaces / CIIGSIncludes / MiscTool.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-04-03  |  13.5 KB  |  374 lines  |  [TEXT/MPS ]

  1. /********************************************
  2. ; File: MiscTool.h
  3. ;
  4. ;
  5. ; Copyright Apple Computer, Inc.1986-90
  6. ; All Rights Reserved
  7. ;
  8. ********************************************/
  9. #ifndef __TYPES__
  10. #include <TYPES.h>
  11. #endif
  12.  
  13. #ifndef __MISCTOOL__
  14. #define __MISCTOOL__
  15.  
  16.  
  17. /* Error codes */
  18. #define badInputErr 0x0301  /* bad input parameter */
  19. #define noDevParamErr 0x0302  /* no device for input parameter */
  20. #define taskInstlErr 0x0303  /* task already installed error */
  21. #define noSigTaskErr 0x0304  /* no signature in task header */
  22. #define queueDmgdErr 0x0305  /* queue has been damaged error */
  23. #define taskNtFdErr 0x0306  /* task was not found error */
  24. #define firmTaskErr 0x0307  /* firmware task was unsuccessful */
  25. #define hbQueueBadErr 0x0308  /* heartbeat queue damaged */
  26. #define unCnctdDevErr 0x0309  /* attempted to dispatch to unconnected device */
  27. #define idTagNtAvlErr 0x030B  /* ID tag not available */
  28. #define notInList 0x0380
  29. #define invalidTag 0x0381  /* correct signature value not found in header */
  30. #define alreadyInQueue 0x0382
  31.  
  32. /* System Fail Codes */
  33. #define pdosUnClmdIntErr 0x0001  /* ProDOS unclaimed interrupt error */
  34. #define divByZeroErr 0x0004  /* divide by zero error */
  35. #define pdosVCBErr 0x000A  /* ProDOS VCB unusable */
  36. #define pdosFCBErr 0x000B  /* ProDOS FCB unusable */
  37. #define pdosBlk0Err 0x000C  /* ProDOS block zero allocated illegally */
  38. #define pdosIntShdwErr 0x000D  /* ProDOS interrupt w/ shadowing off */
  39. #define segLoader1Err 0x0015  /* segment loader error */
  40. #define sPackage0Err 0x0017  /* can't load a package */
  41. #define package1Err 0x0018  /* can't load a package */
  42. #define package2Err 0x0019  /* can't load a package */
  43. #define package3Err 0x001A  /* can't load a package */
  44. #define package4Err 0x001B  /* can't load a package */
  45. #define package5Err 0x001C  /* can't load a package */
  46. #define package6Err 0x001D  /* can't load a package */
  47. #define package7Err 0x001E  /* can't load a package */
  48. #define package8Err 0x0020  /* can't load a package */
  49. #define package9Err 0x0021  /* can't load a package */
  50. #define package10Err 0x0022  /* can't load a package */
  51. #define package11Err 0x0023  /* can't load a package */
  52. #define package12Err 0x0024  /* can't load a package */
  53. #define outOfMemErr 0x0025  /* out of memory error */
  54. #define segLoader2Err 0x0026  /* segment loader error */
  55. #define fMapTrshdErr 0x0027  /* file map trashed */
  56. #define stkOvrFlwErr 0x0028  /* stack overflow error */
  57. #define psInstDiskErr 0x0030  /* Please Insert Disk (file manager alert) */
  58. #define memMgr1Err 0x0032  /* memory manager error */
  59. #define memMgr2Err 0x0033  /* memory manager error */
  60. #define memMgr3Err 0x0034  /* memory manager error */
  61. #define memMgr4Err 0x0035  /* memory manager error */
  62. #define memMgr5Err 0x0036  /* memory manager error */
  63. #define memMgr6Err 0x0037  /* memory manager error */
  64. #define memMgr7Err 0x0038  /* memory manager error */
  65. #define memMgr8Err 0x0039  /* memory manager error */
  66. #define memMgr9Err 0x003A  /* memory manager error */
  67. #define memMgr10Err 0x003B  /* memory manager error */
  68. #define memMgr11Err 0x003C  /* memory manager error */
  69. #define memMgr12Err 0x003D  /* memory manager error */
  70. #define memMgr13Err 0x003E  /* memory manager error */
  71. #define memMgr14Err 0x003F  /* memory manager error */
  72. #define memMgr15Err 0x0040  /* memory manager error */
  73. #define memMgr16Err 0x0041  /* memory manager error */
  74. #define memMgr17Err 0x0042  /* memory manager error */
  75. #define memMgr18Err 0x0043  /* memory manager error */
  76. #define memMgr19Err 0x0044  /* memory manager error */
  77. #define memMgr20Err 0x0045  /* memory manager error */
  78. #define memMgr21Err 0x0046  /* memory manager error */
  79. #define memMgr22Err 0x0047  /* memory manager error */
  80. #define memMgr23Err 0x0048  /* memory manager error */
  81. #define memMgr24Err 0x0049  /* memory manager error */
  82. #define memMgr25Err 0x004A  /* memory manager error */
  83. #define memMgr26Err 0x004B  /* memory manager error */
  84. #define memMgr27Err 0x004C  /* memory manager error */
  85. #define memMgr28Err 0x004D  /* memory manager error */
  86. #define memMgr29Err 0x004E  /* memory manager error */
  87. #define memMgr30Err 0x004F  /* memory manager error */
  88. #define memMgr31Err 0x0050  /* memory manager error */
  89. #define memMgr32Err 0x0051  /* memory manager error */
  90. #define memMgr33Err 0x0052  /* memory manager error */
  91. #define memMgr34Err 0x0053  /* memory manager error */
  92. #define stupVolMntErr 0x0100  /* can't mount system startup volume */
  93.  
  94. /* Battery Ram Parameter Reference Numbers */
  95. #define p1PrntModem 0x0000
  96. #define p1LineLnth 0x0001
  97. #define p1DelLine 0x0002
  98. #define p1AddLine 0x0003
  99. #define p1Echo 0x0004
  100. #define p1Buffer 0x0005
  101. #define p1Baud 0x0006
  102. #define p1DtStpBits 0x0007
  103. #define p1Parity 0x0008
  104. #define p1DCDHndShk 0x0009
  105. #define p1DSRHndShk 0x000A
  106. #define p1XnfHndShk 0x000B
  107. #define p2PrntModem 0x000C
  108. #define p2LineLnth 0x000D
  109. #define p2DelLine 0x000E
  110. #define p2AddLine 0x000F
  111. #define p2Echo 0x0010
  112. #define p2Buffer 0x0011
  113. #define p2Baud 0x0012
  114. #define p2DtStpBits 0x0013
  115. #define p2Parity 0x0014
  116. #define p2DCDHndShk 0x0015
  117. #define p2DSRHndShk 0x0016
  118. #define p2XnfHndShk 0x0017
  119. #define dspColMono 0x0018
  120. #define dsp40or80 0x0019
  121. #define dspTxtColor 0x001A
  122. #define dspBckColor 0x001B
  123. #define dspBrdColor 0x001C
  124. #define hrtz50or60 0x001D
  125. #define userVolume 0x001E
  126. #define bellVolume 0x001F
  127. #define sysSpeed 0x0020
  128. #define slt1intExt 0x0021
  129. #define slt2intExt 0x0022
  130. #define slt3intExt 0x0023
  131. #define slt4intExt 0x0024
  132. #define slt5intExt 0x0025
  133. #define slt6intExt 0x0026
  134. #define slt7intExt 0x0027
  135. #define startupSlt 0x0028
  136. #define txtDspLang 0x0029
  137. #define kyBdLang 0x002A
  138. #define kyBdBuffer 0x002B
  139. #define kyBdRepSpd 0x002C
  140. #define kyBdRepDel 0x002D
  141. #define dblClkTime 0x002E
  142. #define flashRate 0x002F
  143. #define shftCpsLCas 0x0030
  144. #define fstSpDelKey 0x0031
  145. #define dualSpeed 0x0032
  146. #define hiMouseRes 0x0033
  147. #define dateFormat 0x0034
  148. #define clockFormat 0x0035
  149. #define rdMinRam 0x0036
  150. #define rdMaxRam 0x0037
  151. #define langCount 0x0038
  152. #define lang1 0x0039
  153. #define lang2 0x003A
  154. #define lang3 0x003B
  155. #define lang4 0x003C
  156. #define lang5 0x003D
  157. #define lang6 0x003E
  158. #define lang7 0x003F
  159. #define lang8 0x0040
  160. #define layoutCount 0x0041
  161. #define layout1 0x0042
  162. #define layout2 0x0043
  163. #define layout3 0x0044
  164. #define layout4 0x0045
  165. #define layout5 0x0046
  166. #define layout6 0x0047
  167. #define layout7 0x0048
  168. #define layout8 0x0049
  169. #define layout9 0x004A
  170. #define layout10 0x004B
  171. #define layout11 0x004C
  172. #define layout12 0x004D
  173. #define layout13 0x004E
  174. #define layout14 0x004F
  175. #define layout15 0x0050
  176. #define layout16 0x0051
  177. #define aTalkNodeNo 0x0080
  178.  
  179. /* GetAddr Parameter Reference Numbers */
  180. #define irqIntFlag 0x0000
  181. #define irqDataReg 0x0001
  182. #define irqSerial1 0x0002
  183. #define irqSerial2 0x0003
  184. #define irqAplTlkHi 0x0004
  185. #define tickCnt 0x0005
  186. #define irqVolume 0x0006
  187. #define irqActive 0x0007
  188. #define irqSndData 0x0008
  189. #define brkVar 0x0009
  190. #define evMgrData 0x000A
  191. #define mouseSlot 0x000B
  192. #define mouseClamps 0x000C
  193. #define absClamps 0x000D
  194. #define sccIntFlag 0x000E
  195.  
  196. /* Hardware Interrupt Status Numbers */
  197. #define extVGCInt 0x01  /* Returned by GetIRQEnable */
  198. #define scanLineInt 0x02  /* Returned by GetIRQEnable */
  199. #define adbDataInt 0x04  /* Returned by GetIRQEnable */
  200. #define ADTBDataInt 0x04  /* maintained for compatiblity with old interfaces */
  201. #define oneSecInt 0x10  /* Returned by GetIRQEnable */
  202. #define quartSecInt 0x20  /* Returned by GetIRQEnable */
  203. #define vbInt 0x40  /* Returned by GetIRQEnable */
  204. #define kbdInt 0x80  /* Returned by GetIRQEnable */
  205.  
  206. /* Interrupt Reference Numbers */
  207. #define kybdEnable 0x0000  /* Parameter to IntSource */
  208. #define kybdDisable 0x0001  /* Parameter to IntSource */
  209. #define vblEnable 0x0002  /* Parameter to IntSource */
  210. #define vblDisable 0x0003  /* Parameter to IntSource */
  211. #define qSecEnable 0x0004  /* Parameter to IntSource */
  212. #define qSecDisable 0x0005  /* Parameter to IntSource */
  213. #define oSecEnable 0x0006  /* Parameter to IntSource */
  214. #define oSecDisable 0x0007  /* Parameter to IntSource */
  215. #define adbEnable 0x000A  /* Parameter to IntSource */
  216. #define adbDisable 0x000B  /* Parameter to IntSource */
  217. #define scLnEnable 0x000C  /* Parameter to IntSource */
  218. #define scLnDisable 0x000D  /* Parameter to IntSource */
  219. #define exVCGEnable 0x000E  /* Parameter to IntSource */
  220. #define exVCGDisable 0x000F  /* Parameter to IntSource */
  221.  
  222. /* Mouse Mode Values */
  223. #define mouseOff 0x0000
  224. #define transparent 0x0001
  225. #define transParnt 0x0001  /* (old name) */
  226. #define moveIntrpt 0x0003
  227. #define bttnIntrpt 0x0005
  228. #define bttnOrMove 0x0007
  229. #define mouseOffVI 0x0008
  230. #define transParntVI 0x0009  /* (old name) */
  231. #define transparentVI 0x0009
  232. #define moveIntrptVI 0x000B
  233. #define bttnIntrptVI 0x000D
  234. #define bttnOrMoveVI 0x000F
  235.  
  236. /* Vector Reference Numbers */
  237. #define toolLoc1 0x0000
  238. #define toolLoc2 0x0001
  239. #define usrTLoc1 0x0002
  240. #define usrTLoc2 0x0003
  241. #define intrptMgr 0x0004
  242. #define copMgr 0x0005
  243. #define abortMgr 0x0006
  244. #define _sysFailMgr 0x0007
  245. #define aTalkIntHnd 0x0008
  246. #define sccIntHnd 0x0009
  247. #define scLnIntHnd 0x000A
  248. #define sndIntHnd 0x000B
  249. #define vblIntHnd 0x000C
  250. #define mouseIntHnd 0x000D
  251. #define qSecIntHnd 0x000E
  252. #define kybdIntHnd 0x000F
  253. #define adbRBIHnd 0x0010
  254. #define adbSRQHnd 0x0011
  255. #define deskAccHnd 0x0012
  256. #define flshBufHnd 0x0013
  257. #define kybdMicHnd 0x0014
  258. #define oneSecHnd 0x0015
  259. #define extVCGHnd 0x0016
  260. #define otherIntHnd 0x0017
  261. #define crsrUpdtHnd 0x0018
  262. #define incBsyFlag 0x0019
  263. #define decBsyFlag 0x001A
  264. #define bellVector 0x001B
  265. #define breakVector 0x001C
  266. #define traceVector 0x001D
  267. #define stepVector 0x001E
  268. #define ctlYVector 0x0028
  269. #define proDOSVector 0x002A
  270. #define proDOSVctr 0x002A  /* for backward compatibility */
  271. #define osVector 0x002B
  272. #define msgPtrVector 0x002C
  273. #define msgPtrVctr 0x002C  /* for backward compatibility */
  274. #define memMoverVector 0x0080
  275. #define sysSpeedVector 0x0081
  276. #define slotArbiterVector 0x0082
  277. #define hiInterruptVector 0x0086
  278. #define midiInterruptVector 0x0087
  279. struct ClampRec {
  280.    Word yMaxClamp; /*  */
  281.    Word yMinClamp; /*  */
  282.    Word xMaxClamp; /*  */
  283.    Word xMinClamp; /*  */
  284. } ;
  285. typedef struct ClampRec ClampRec, *ClampRecPtr, **ClampRecHndl;
  286. struct FWRec {
  287.    Word yRegExit; /*  */
  288.    Word xRegExit; /*  */
  289.    Word aRegExit; /*  */
  290.    Word status; /*  */
  291. } ;
  292. typedef struct FWRec FWRec, *FWRecPtr, **FWRecHndl;
  293. struct MouseRec {
  294.    Byte mouseMode; /*  */
  295.    Byte mouseStatus; /*  */
  296.    Word yPos; /*  */
  297.    Word xPos; /*  */
  298. } ;
  299. typedef struct MouseRec MouseRec, *MouseRecPtr, **MouseRecHndl;
  300. struct InterruptStateRec {
  301.    Word irq_A;
  302.    Word irq_X;
  303.    Word irq_Y;
  304.    Word irq_S;
  305.    Word irq_D;
  306.    Byte irq_P;
  307.    Byte irq_DB;
  308.    Byte irq_e;
  309.    Byte irq_K;
  310.    Word irq_PC;
  311.    Byte irq_state;
  312.    Word irq_shadow;
  313.    Byte irq_mslot;
  314. } ;
  315. typedef struct InterruptStateRec InterruptStateRec, *InterruptStateRecPtr, **InterruptStateRecHndl;
  316. struct QueueHeaderRec {
  317.    struct QueueHeaderRec *qNext; /*   */
  318.    Word reserved; /*   */
  319.    Word signature; /* Validates header - must be $A55A  */
  320. } ;
  321. typedef struct QueueHeaderRec QueueHeaderRec, *QueueHeaderRecPtr;
  322. extern pascal void AddToQueue() inline(0x2E03,dispatcher);
  323. extern pascal void ClampMouse() inline(0x1C03,dispatcher);
  324. extern pascal void ClearMouse() inline(0x1B03,dispatcher);
  325. extern pascal void ClrHeartBeat() inline(0x1403,dispatcher);
  326. extern pascal void DelHeartBeat() inline(0x1303,dispatcher);
  327. extern pascal void DeleteFromQueue() inline(0x2F03,dispatcher);
  328. extern pascal void DeleteID() inline(0x2103,dispatcher);
  329. extern FWRec FWEntry();
  330. extern ClampRec GetAbsClamp();
  331. extern pascal Pointer GetAddr() inline(0x1603,dispatcher);
  332. extern pascal ProcPtr GetCodeResConverter() inline(0x3403,dispatcher);
  333. extern pascal Word GetIRQEnable() inline(0x2903,dispatcher);
  334. extern pascal Word GetIntStateRecSize() inline(0x3203,dispatcher);
  335. extern pascal void GetInterruptState() inline(0x3103,dispatcher);
  336. extern ClampRec GetMouseClamp();
  337. extern pascal Word GetNewID() inline(0x2003,dispatcher);
  338. extern pascal Pointer GetRomResource() inline(0x3503,dispatcher);
  339. extern pascal LongWord GetTick() inline(0x2503,dispatcher);
  340. extern pascal Pointer GetVector() inline(0x1103,dispatcher);
  341. extern pascal void HomeMouse() inline(0x1A03,dispatcher);
  342. extern pascal void InitMouse() inline(0x1803,dispatcher);
  343. extern pascal void IntSource() inline(0x2303,dispatcher);
  344. extern pascal void MTBootInit() inline(0x0103,dispatcher);
  345. extern pascal void MTReset() inline(0x0503,dispatcher);
  346. extern pascal void MTShutDown() inline(0x0303,dispatcher);
  347. extern pascal void MTStartUp() inline(0x0203,dispatcher);
  348. extern pascal Boolean MTStatus() inline(0x0603,dispatcher);
  349. extern pascal Word MTVersion() inline(0x0403,dispatcher);
  350. extern pascal Word Munger() inline(0x2803,dispatcher);
  351. extern pascal Word PackBytes() inline(0x2603,dispatcher);
  352. extern pascal void PosMouse() inline(0x1E03,dispatcher);
  353. extern pascal void ReadAsciiTime() inline(0x0F03,dispatcher);
  354. extern pascal Word ReadBParam() inline(0x0C03,dispatcher);
  355. extern pascal void ReadBRam() inline(0x0A03,dispatcher);
  356. extern MouseRec ReadMouse();
  357. extern MouseRec ReadMouse2();
  358. extern TimeRec ReadTimeHex();
  359. extern pascal void ReleaseRomResource() inline(0x3603,dispatcher);
  360. extern pascal Word ServeMouse() inline(0x1F03,dispatcher);
  361. extern void SetAbsClamp();
  362. extern pascal void SetHeartBeat() inline(0x1203,dispatcher);
  363. extern pascal void SetInterruptState() inline(0x3003,dispatcher);
  364. extern pascal void SetMouse() inline(0x1903,dispatcher);
  365. extern pascal void SetVector() inline(0x1003,dispatcher);
  366. extern pascal void StatusID() inline(0x2203,dispatcher);
  367. extern pascal void SysBeep() inline(0x2C03,dispatcher);
  368. extern pascal void SysFailMgr() inline(0x1503,dispatcher);
  369. extern pascal Word UnPackBytes() inline(0x2703,dispatcher);
  370. extern pascal void WriteBParam() inline(0x0B03,dispatcher);
  371. extern pascal void WriteBRam() inline(0x0903,dispatcher);
  372. extern void WriteTimeHex();
  373. #endif
  374.